package fr.afcepf.atod16.groupe1.projet1.dto.commande;

import fr.afcepf.atod16.groupe1.projet1.dto.Dto;
import fr.afcepf.atod16.groupe1.projet1.dto.client.DtoCompteClient;
import fr.afcepf.atod16.groupe1.projet1.enumerations.EtatLivraison;
import fr.afcepf.atod16.groupe1.projet1.enumerations.Paiement;
import java.util.Date;
import java.util.List;

/**
 * Le DTO commande
 * @author cedric
 */
public class DtoCommande implements Dto {

    private Integer id;
    private Date dateCreation;
    private Paiement paiement;
    private Integer total;
    private String civiliteFacturation;
    private String nomFacturation;
    private String prenomFacturation;
    private String adresseFacturation;
    private String codePostalFacturation;
    private String villeFacturation;
    private String telFixeFacturation;
    private String telMobileFacturation;
    private String civiliteLivraison;
    private String nomLivraison;
    private String prenomLivraison;
    private String adresseLivraison;
    private String codePostalLivraison;
    private String villeLivraison;
    private String telFixeLivraison;
    private String telMobileLivraison;
    private EtatLivraison etatLivraison;
    private String modeLivraison;
    private Integer fraisLivraison;
    private List<DtoLigneCommande> lignes;
    private DtoCompteClient compteClient;

    public DtoCommande() {
    }

    public DtoCommande(Integer id, Date dateCreation, Paiement paiement, Integer total, String civiliteFacturation, String nomFacturation, String prenomFacturation, String adresseFacturation, String codePostalFacturation, String villeFacturation, String telFixeFacturation, String telMobileFacturation, String civiliteLivraison, String nomLivraison, String prenomLivraison, String adresseLivraison, String codePostalLivraison, String villeLivraison, String telFixeLivraison, String telMobileLivraison, EtatLivraison etatLivraison, String modeLivraison, Integer fraisLivraison, List<DtoLigneCommande> lignes, DtoCompteClient compteClient) {
        this.id = id;
        this.dateCreation = dateCreation;
        this.paiement = paiement;
        this.total = total;
        this.civiliteFacturation = civiliteFacturation;
        this.nomFacturation = nomFacturation;
        this.prenomFacturation = prenomFacturation;
        this.adresseFacturation = adresseFacturation;
        this.codePostalFacturation = codePostalFacturation;
        this.villeFacturation = villeFacturation;
        this.telFixeFacturation = telFixeFacturation;
        this.telMobileFacturation = telMobileFacturation;
        this.civiliteLivraison = civiliteLivraison;
        this.nomLivraison = nomLivraison;
        this.prenomLivraison = prenomLivraison;
        this.adresseLivraison = adresseLivraison;
        this.codePostalLivraison = codePostalLivraison;
        this.villeLivraison = villeLivraison;
        this.telFixeLivraison = telFixeLivraison;
        this.telMobileLivraison = telMobileLivraison;
        this.etatLivraison = etatLivraison;
        this.modeLivraison = modeLivraison;
        this.fraisLivraison = fraisLivraison;
        this.lignes = lignes;
        this.compteClient = compteClient;
    }

    @Override
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Date getDateCreation() {
        return dateCreation;
    }

    public void setDateCreation(Date dateCreation) {
        this.dateCreation = dateCreation;
    }

    public Paiement getPaiement() {
        return paiement;
    }

    public void setPaiement(Paiement paiement) {
        this.paiement = paiement;
    }

    public Integer getTotal() {
        return total;
    }

    public void setTotal(Integer total) {
        this.total = total;
    }

    public String getCiviliteFacturation() {
        return civiliteFacturation;
    }

    public void setCiviliteFacturation(String civiliteFacturation) {
        this.civiliteFacturation = civiliteFacturation;
    }

    public String getNomFacturation() {
        return nomFacturation;
    }

    public void setNomFacturation(String nomFacturation) {
        this.nomFacturation = nomFacturation;
    }

    public String getPrenomFacturation() {
        return prenomFacturation;
    }

    public void setPrenomFacturation(String prenomFacturation) {
        this.prenomFacturation = prenomFacturation;
    }

    public String getAdresseFacturation() {
        return adresseFacturation;
    }

    public void setAdresseFacturation(String adresseFacturation) {
        this.adresseFacturation = adresseFacturation;
    }

    public String getCodePostalFacturation() {
        return codePostalFacturation;
    }

    public void setCodePostalFacturation(String codePostalFacturation) {
        this.codePostalFacturation = codePostalFacturation;
    }

    public String getVilleFacturation() {
        return villeFacturation;
    }

    public void setVilleFacturation(String villeFacturation) {
        this.villeFacturation = villeFacturation;
    }

    public String getTelFixeFacturation() {
        return telFixeFacturation;
    }

    public void setTelFixeFacturation(String telFixeFacturation) {
        this.telFixeFacturation = telFixeFacturation;
    }

    public String getTelMobileFacturation() {
        return telMobileFacturation;
    }

    public void setTelMobileFacturation(String telMobileFacturation) {
        this.telMobileFacturation = telMobileFacturation;
    }

    public String getCiviliteLivraison() {
        return civiliteLivraison;
    }

    public void setCiviliteLivraison(String civiliteLivraison) {
        this.civiliteLivraison = civiliteLivraison;
    }

    public String getNomLivraison() {
        return nomLivraison;
    }

    public void setNomLivraison(String nomLivraison) {
        this.nomLivraison = nomLivraison;
    }

    public String getPrenomLivraison() {
        return prenomLivraison;
    }

    public void setPrenomLivraison(String prenomLivraison) {
        this.prenomLivraison = prenomLivraison;
    }

    public String getAdresseLivraison() {
        return adresseLivraison;
    }

    public void setAdresseLivraison(String adresseLivraison) {
        this.adresseLivraison = adresseLivraison;
    }

    public String getCodePostalLivraison() {
        return codePostalLivraison;
    }

    public void setCodePostalLivraison(String codePostalLivraison) {
        this.codePostalLivraison = codePostalLivraison;
    }

    public String getVilleLivraison() {
        return villeLivraison;
    }

    public void setVilleLivraison(String villeLivraison) {
        this.villeLivraison = villeLivraison;
    }

    public String getTelFixeLivraison() {
        return telFixeLivraison;
    }

    public void setTelFixeLivraison(String telFixeLivraison) {
        this.telFixeLivraison = telFixeLivraison;
    }

    public String getTelMobileLivraison() {
        return telMobileLivraison;
    }

    public void setTelMobileLivraison(String telMobileLivraison) {
        this.telMobileLivraison = telMobileLivraison;
    }

    public EtatLivraison getEtatLivraison() {
        return etatLivraison;
    }

    public void setEtatLivraison(EtatLivraison etatLivraison) {
        this.etatLivraison = etatLivraison;
    }

    public String getModeLivraison() {
        return modeLivraison;
    }

    public void setModeLivraison(String modeLivraison) {
        this.modeLivraison = modeLivraison;
    }

    public Integer getFraisLivraison() {
        return fraisLivraison;
    }

    public void setFraisLivraison(Integer fraisLivraison) {
        this.fraisLivraison = fraisLivraison;
    }

    public List<DtoLigneCommande> getLignes() {
        return lignes;
    }

    public void setLignes(List<DtoLigneCommande> lignes) {
        this.lignes = lignes;
    }

    public DtoCompteClient getCompteClient() {
        return compteClient;
    }

    public void setCompteClient(DtoCompteClient compteClient) {
        this.compteClient = compteClient;
    }

    @Override
    public String toString() {
        return "DtoCommande{" + "id=" + id + ", dateCreation=" + dateCreation + ", paiement=" + paiement + ", total=" + total + ", civiliteFacturation=" + civiliteFacturation + ", nomFacturation=" + nomFacturation + ", prenomFacturation=" + prenomFacturation + ", adresseFacturation=" + adresseFacturation + ", codePostalFacturation=" + codePostalFacturation + ", villeFacturation=" + villeFacturation + ", telFixeFacturation=" + telFixeFacturation + ", telMobileFacturation=" + telMobileFacturation + ", civiliteLivraison=" + civiliteLivraison + ", nomLivraison=" + nomLivraison + ", prenomLivraison=" + prenomLivraison + ", adresseLivraison=" + adresseLivraison + ", codePostalLivraison=" + codePostalLivraison + ", villeLivraison=" + villeLivraison + ", telFixeLivraison=" + telFixeLivraison + ", telMobileLivraison=" + telMobileLivraison + ", etatLivraison=" + etatLivraison + ", modeLivraison=" + modeLivraison + ", fraisLivraison=" + fraisLivraison + ", compteClient=" + compteClient + '}';
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 59 * hash + (this.id != null ? this.id.hashCode() : 0);
        hash = 59 * hash + (this.dateCreation != null ? this.dateCreation.hashCode() : 0);
        hash = 59 * hash + (this.paiement != null ? this.paiement.hashCode() : 0);
        hash = 59 * hash + (this.total != null ? this.total.hashCode() : 0);
        hash = 59 * hash + (this.civiliteFacturation != null ? this.civiliteFacturation.hashCode() : 0);
        hash = 59 * hash + (this.nomFacturation != null ? this.nomFacturation.hashCode() : 0);
        hash = 59 * hash + (this.prenomFacturation != null ? this.prenomFacturation.hashCode() : 0);
        hash = 59 * hash + (this.adresseFacturation != null ? this.adresseFacturation.hashCode() : 0);
        hash = 59 * hash + (this.codePostalFacturation != null ? this.codePostalFacturation.hashCode() : 0);
        hash = 59 * hash + (this.villeFacturation != null ? this.villeFacturation.hashCode() : 0);
        hash = 59 * hash + (this.telFixeFacturation != null ? this.telFixeFacturation.hashCode() : 0);
        hash = 59 * hash + (this.telMobileFacturation != null ? this.telMobileFacturation.hashCode() : 0);
        hash = 59 * hash + (this.civiliteLivraison != null ? this.civiliteLivraison.hashCode() : 0);
        hash = 59 * hash + (this.nomLivraison != null ? this.nomLivraison.hashCode() : 0);
        hash = 59 * hash + (this.prenomLivraison != null ? this.prenomLivraison.hashCode() : 0);
        hash = 59 * hash + (this.adresseLivraison != null ? this.adresseLivraison.hashCode() : 0);
        hash = 59 * hash + (this.codePostalLivraison != null ? this.codePostalLivraison.hashCode() : 0);
        hash = 59 * hash + (this.villeLivraison != null ? this.villeLivraison.hashCode() : 0);
        hash = 59 * hash + (this.telFixeLivraison != null ? this.telFixeLivraison.hashCode() : 0);
        hash = 59 * hash + (this.telMobileLivraison != null ? this.telMobileLivraison.hashCode() : 0);
        hash = 59 * hash + (this.etatLivraison != null ? this.etatLivraison.hashCode() : 0);
        hash = 59 * hash + (this.modeLivraison != null ? this.modeLivraison.hashCode() : 0);
        hash = 59 * hash + (this.fraisLivraison != null ? this.fraisLivraison.hashCode() : 0);
        hash = 59 * hash + (this.compteClient != null ? this.compteClient.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final DtoCommande other = (DtoCommande) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        if (this.dateCreation != other.dateCreation && (this.dateCreation == null || !this.dateCreation.equals(other.dateCreation))) {
            return false;
        }
        if (this.paiement != other.paiement) {
            return false;
        }
        if (this.total != other.total && (this.total == null || !this.total.equals(other.total))) {
            return false;
        }
        if ((this.civiliteFacturation == null) ? (other.civiliteFacturation != null) : !this.civiliteFacturation.equals(other.civiliteFacturation)) {
            return false;
        }
        if ((this.nomFacturation == null) ? (other.nomFacturation != null) : !this.nomFacturation.equals(other.nomFacturation)) {
            return false;
        }
        if ((this.prenomFacturation == null) ? (other.prenomFacturation != null) : !this.prenomFacturation.equals(other.prenomFacturation)) {
            return false;
        }
        if ((this.adresseFacturation == null) ? (other.adresseFacturation != null) : !this.adresseFacturation.equals(other.adresseFacturation)) {
            return false;
        }
        if ((this.codePostalFacturation == null) ? (other.codePostalFacturation != null) : !this.codePostalFacturation.equals(other.codePostalFacturation)) {
            return false;
        }
        if ((this.villeFacturation == null) ? (other.villeFacturation != null) : !this.villeFacturation.equals(other.villeFacturation)) {
            return false;
        }
        if ((this.telFixeFacturation == null) ? (other.telFixeFacturation != null) : !this.telFixeFacturation.equals(other.telFixeFacturation)) {
            return false;
        }
        if ((this.telMobileFacturation == null) ? (other.telMobileFacturation != null) : !this.telMobileFacturation.equals(other.telMobileFacturation)) {
            return false;
        }
        if ((this.civiliteLivraison == null) ? (other.civiliteLivraison != null) : !this.civiliteLivraison.equals(other.civiliteLivraison)) {
            return false;
        }
        if ((this.nomLivraison == null) ? (other.nomLivraison != null) : !this.nomLivraison.equals(other.nomLivraison)) {
            return false;
        }
        if ((this.prenomLivraison == null) ? (other.prenomLivraison != null) : !this.prenomLivraison.equals(other.prenomLivraison)) {
            return false;
        }
        if ((this.adresseLivraison == null) ? (other.adresseLivraison != null) : !this.adresseLivraison.equals(other.adresseLivraison)) {
            return false;
        }
        if ((this.codePostalLivraison == null) ? (other.codePostalLivraison != null) : !this.codePostalLivraison.equals(other.codePostalLivraison)) {
            return false;
        }
        if ((this.villeLivraison == null) ? (other.villeLivraison != null) : !this.villeLivraison.equals(other.villeLivraison)) {
            return false;
        }
        if ((this.telFixeLivraison == null) ? (other.telFixeLivraison != null) : !this.telFixeLivraison.equals(other.telFixeLivraison)) {
            return false;
        }
        if ((this.telMobileLivraison == null) ? (other.telMobileLivraison != null) : !this.telMobileLivraison.equals(other.telMobileLivraison)) {
            return false;
        }
        if (this.etatLivraison != other.etatLivraison) {
            return false;
        }
        if ((this.modeLivraison == null) ? (other.modeLivraison != null) : !this.modeLivraison.equals(other.modeLivraison)) {
            return false;
        }
        if (this.fraisLivraison != other.fraisLivraison && (this.fraisLivraison == null || !this.fraisLivraison.equals(other.fraisLivraison))) {
            return false;
        }
        if (this.compteClient != other.compteClient && (this.compteClient == null || !this.compteClient.equals(other.compteClient))) {
            return false;
        }
        return true;
    }
}
